Memento des commandes Git
Création d'un dépôt et ajout d'un commit
Commande | Effet |
---|---|
git init <directory> | Créer un dépôt git vide dans le répertoire spécifié ou initialise le répertoire courant en tant que dépôt git. |
git config --global user.name <name> | Définir le nom de l'auteur/autrice à utiliser pour les nouveaux commits. |
git status | Afficher l'état du dépôt et la liste des fichiers inclus ou non pour le prochain commit. |
git add <dossier> | Inclure (stage) tous les changement dans <dossier> pour le commit |
git add <fichier> | Inclure les changement du <fichier> pour le commit |
git add -A | Inclure tous les changements pour le commit |
git rm <fichier> | Enlever (unstage) <fichier> du prochain commit. |
git diff | Afficher les lignes modifiées depuis le dernier commit. |
git commit -m "<message>" | Valider les modifications sélectionnées (staged) pour créer un nouveau commit avec le message <message> . |
git log ou git log --oneline --all --graph | Afficher l'historique des commits |
git remote add <name> <url> | Ajouter une connexion de votre dépôt courant à un dépôt sur un serveur. |
git push | Pousser les nouveau commits sur le serveur (principal). |
Téléchargement et exploration d'un dépôt simple
Commande | Effet |
---|---|
git clone <url> | Cloner en local un dépot depuis l'adresse <url> généralement un serveur ou un forge. |
git pull | Récupérer les dernières modification (#réflexe). |
git log --oneline | Afficher l'historique avec une ligne par commit. |
tig | Un outil plus sympa que git log pour explorer l'historique. |
git diff HEAD <num_commit> | Affiche la différence entre le commit actuel (HEAD) et le commit <num_commit> . |
git diff HEAD HEAD~1 | Affiche la différence entre le commit actuel (HEAD) et le précédent (HEAD~1). |
git checkout <num_commit> | Charge la version du code au niveau du commit <num_commit> . La "tête" se déplace au niveau de ce commit (HEAD détachée). |
git checkout master ou <nom_branch> | Positionne HEAD au niveau du dernier commit de la branche. |
git reflog | Affiche une liste des dernières positions de HEAD. (quand on est perdu !!! ) |
Les branches et les merges
Commande | Effet |
---|---|
git branch | Afficher la liste des branches |
git branch <nom_branche> | Créer une branche <nom_branche> |
git checkout <nom_branche> | Basculer sur la branche <nom_branche> |
git switch <nom_branche> | Basculer sur la branche <nom_branche> |
git checkout -b <nom_branche> | Créer une nouvelle branche et basculer dessus |
git switch -c <nom_branche> | Créer une nouvelle branche et basculer dessus |
git diff <branche_1> <branche_2> | Comparer deux branches pour voir les différences |
git merge <nom_branche> | Fusionner la branche <nom_branche> avec la branche courante. |
git stash | Sauvegarder ses modifications actuelles temporairement pour nettoyer son espace de travail. |
git stash pop | Réappliquer les modifications sauvegardées pour restaurer son espace de travail. |
Corriger ses erreurs
Commande | Effet |
---|---|
git commit --amend | Ajouter des modifications au commit précédent pour le corriger ou simplement changer le message du commit précédent. |
git reset <commit> | Réinitialiser le HEAD au commit indiqué en gardant les modifications. |
git reset --hard <commit> | Réinitialiser le HEAD au commit indiqué en perdant les modifications. |
git rebase <branche> | (plus complexe) Reconstruire l'historique de la branche courant à partir d'une autre branche en résolvant les conflits à chaque commit |
git branch -f <nom_branche> <commit> | Réinitialiser la branche <nom_branche> (sur laquelle on n'est pas) au commit indiqué sans toucher à notre HEAD . |
git restore <chemin_fichier> -s <commit> | Récupère le contenu des fichiers indiqués par chemin_fichier extraits depuis le contenu du commit <commit> . |
Lexique git
Concept | Explication |
---|---|
Un commit | Une version validée du code avec un auteur / une autrice, un message et un identifiant unique. |
Une branche | Une suite de commits avec un nom contenant une version du logiciel. |
HEAD | Le commit actuellement sélectionné dans le dépôt. |
remote | Un dépôt git sur un serveur par exemple la forge framagit. |
origin | Le nom du remote par défaut. |
master | La branche par défaut, généralement la branche principale. |